package com.zw.mes.module.assemble.mapper;


import com.zw.mes.module.assemble.entity.AsseAssemblyDetail;
import com.zw.mes.module.assemble.entity.AsseAssemblySheet;
import com.zw.mes.module.assemble.entity.AsseRoute;
import com.zw.mes.module.assemble.model.CraMakeModel;
import com.zw.mes.module.assemble.model.ProStructModel;
import com.zw.mes.module.assemble.model.ProdOrdModel;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description:
 *
 * @Author: China.wsg
 * @Date: 2021/04/17 13:03
 */
public interface DispatchMapper {

    /** 获取生产令列表数据 */
    List<ProdOrdModel> prodOrdListByCode(String code);

    /** 根据项目号、专业查询部分 */
    List<ProStructModel> findPartByProCodeAndSpecial(@Param("code") String code, @Param("special") String special);

    /** 根据ID查询部分 */
    ProStructModel findPartById(Integer id);

    /** 查询图号列表 */
    List<CraMakeModel> findCarMakeListByCodeAndPartId(@Param("code") String code, @Param("special") String special
            , @Param("partId") Integer partId, @Param("drawNo") String drawNo);

    /** 查图号 */
    CraMakeModel findDrawNoById(Integer id);

    /** 装配单从表 */
    List<AsseAssemblyDetail> findAssemblyDetailBySheetId(Integer sheetId);

    /** 提交列表数据 */
    List<AsseAssemblySheet> findAssemblySheetById(AsseAssemblySheet assemblySheet);

    /** 将工序插入装配路线表 */
    int insertAssemblyRoute(Integer sheetId);

    /** 装配单从表(修改页面使用) */
    List<AsseAssemblyDetail> findAssemblyDetailForEditBySheetId(Integer sheetId);

    /** 删除装配派工单明细 */
    int deleteAssemblyDetailBySheetId(Integer sheetId);

    /** 转序标识(0=未转序，大于0=转序) */
    Integer getTransFlgBySheetId(Integer sheetId);

    /** 查询未转过序的路线 */
    List<AsseRoute> findRoutesNotTransBySheetId(Integer sheetId);

    /** 删除没转序的装配工艺路线 */
    int deleteNotTransAssemblyRouteBySheetId(Integer sheetId);

    /** 更新首序接收数量 */
    int updateNotTransOneRouteRecNum(@Param("sheetId") Integer sheetId, @Param("drawNum") Integer drawNum);

    /** 更新排产计划反馈信息表排产提交时间信息 */
    int updateProdPlaRetDate(@Param("prodNo") String prodNo, @Param("prprCod") String prprCod);

    /** 自动化装配任务反馈数据 */
    List<AsseAssemblySheet> findAssemblySheeteElectric(AsseAssemblySheet assemblySheet);

    /** 更新自动化装配进度反馈 */
    int updateEleBake(AsseAssemblySheet assemblySheet);

    int selectDispatchCount();
}
